[INFO] fetching crate gluon_base 0.18.2...
[INFO] fixing gluon_base-0.18.2 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate gluon_base 0.18.2 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate gluon_base 0.18.2
[INFO] finished tweaking crates.io crate gluon_base 0.18.2
[INFO] tweaked toml for crates.io crate gluon_base 0.18.2 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate gluon_base 0.18.2 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 79 packages to latest compatible versions
[INFO] [stderr]       Adding bitflags v1.3.2 (available: v2.13.0)
[INFO] [stderr]       Adding codespan v0.11.1 (available: v0.13.1)
[INFO] [stderr]       Adding codespan-reporting v0.11.1 (available: v0.13.1)
[INFO] [stderr]       Adding compiletest_rs v0.7.1 (available: v0.11.2)
[INFO] [stderr]       Adding env_logger v0.9.3 (available: v0.11.10)
[INFO] [stderr]       Adding hashbrown v0.11.2 (available: v0.17.1)
[INFO] [stderr]       Adding itertools v0.10.5 (available: v0.15.0)
[INFO] [stderr]       Adding ordered-float v2.10.1 (available: v5.3.0)
[INFO] [stderr]       Adding pretty v0.10.0 (available: v0.12.5)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7e8242f685711023a4758eafac9aef066303fabba0e1c4dc72967cf711418690
[INFO] running `Command { std: "docker" "start" "7e8242f685711023a4758eafac9aef066303fabba0e1c4dc72967cf711418690", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7e8242f685711023a4758eafac9aef066303fabba0e1c4dc72967cf711418690" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e8242f685711023a4758eafac9aef066303fabba0e1c4dc72967cf711418690", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7e8242f685711023a4758eafac9aef066303fabba0e1c4dc72967cf711418690" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   log v0.4.33 removed features: std
[INFO] [stderr] 
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking pretty v0.10.0
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking collect-mac v0.1.0
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]    Compiling gluon_codegen v0.18.2
[INFO] [stderr]     Checking ahash v0.7.8
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]     Checking codespan v0.11.1
[INFO] [stderr]     Checking gluon_base v0.18.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/types.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/compiletest.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.46s
[INFO] [stderr] crater-edition-check: gluon_base v0.18.2 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking gluon_base v0.18.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `memory_usage`
[INFO] [stdout]   --> src/pos.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[cfg_attr(feature = "memory_usage", derive(HeapSizeOf))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `anymap`, `compiletest_rs`, `nightly`, `serde`, `serde_derive`, `serde_derive_state`, `serde_state`, and `serialization`
[INFO] [stdout]    = help: consider adding `memory_usage` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `memory_usage`
[INFO] [stdout]   --> src/pos.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[cfg_attr(feature = "memory_usage", derive(HeapSizeOf))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `anymap`, `compiletest_rs`, `nightly`, `serde`, `serde_derive`, `serde_derive_state`, `serde_state`, and `serialization`
[INFO] [stdout]    = help: consider adding `memory_usage` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]     --> src/ast.rs:1328:32
[INFO] [stdout]      |
[INFO] [stdout] 1328 |             struct Guard<'tag>(&'tag $crate::ast::InvariantLifetime<'tag>);
[INFO] [stdout]      |                    -----       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1346 |         mk_ast_arena!(arena);
[INFO] [stdout]      |         -------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider removing this field
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]      = note: this warning originates in the macro `mk_ast_arena` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/ast.rs:81:25
[INFO] [stdout]    |
[INFO] [stdout] 81 | #[derive(Eq, PartialEq, AstClone)]
[INFO] [stdout]    |                         ^-------
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `AstClone` is not local
[INFO] [stdout]    |                         move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_InnerAstType`
[INFO] [stdout] 82 | pub struct InnerAstType<'ast, Id> {
[INFO] [stdout]    |            ------------ `InnerAstType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/ast.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 | #[derive(Eq, PartialEq, AstClone)]
[INFO] [stdout]    |                         ^-------
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `AstClone` is not local
[INFO] [stdout]    |                         move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_AstType`
[INFO] [stdout] 88 | pub struct AstType<'ast, Id> {
[INFO] [stdout]    |            ------- `AstType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:283:32
[INFO] [stdout]     |
[INFO] [stdout] 283 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_PatternField`
[INFO] [stdout] 284 | pub enum PatternField<'ast, Id> {
[INFO] [stdout]     |          ------------ `PatternField` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:302:32
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Pattern`
[INFO] [stdout] 303 | pub enum Pattern<'ast, Id> {
[INFO] [stdout]     |          ------- `Pattern` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:384:32
[INFO] [stdout]     |
[INFO] [stdout] 384 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Alternative`
[INFO] [stdout] 385 | pub struct Alternative<'ast, Id> {
[INFO] [stdout]     |            ----------- `Alternative` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:390:32
[INFO] [stdout]     |
[INFO] [stdout] 390 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Array`
[INFO] [stdout] 391 | pub struct Array<'ast, Id> {
[INFO] [stdout]     |            ----- `Array` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:396:32
[INFO] [stdout]     |
[INFO] [stdout] 396 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Lambda`
[INFO] [stdout] 397 | pub struct Lambda<'ast, Id> {
[INFO] [stdout]     |            ------ `Lambda` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:411:32
[INFO] [stdout]     |
[INFO] [stdout] 411 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_ExprField`
[INFO] [stdout] 412 | pub struct ExprField<'ast, Id, E> {
[INFO] [stdout]     |            --------- `ExprField` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:418:32
[INFO] [stdout]     |
[INFO] [stdout] 418 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Do`
[INFO] [stdout] 419 | pub struct Do<'ast, Id> {
[INFO] [stdout]     |            -- `Do` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:428:32
[INFO] [stdout]     |
[INFO] [stdout] 428 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Expr`
[INFO] [stdout] 429 | pub enum Expr<'ast, Id> {
[INFO] [stdout]     |          ---- `Expr` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:589:27
[INFO] [stdout]     |
[INFO] [stdout] 587 |         &'a self,
[INFO] [stdout]     |          -- the lifetime is named here
[INFO] [stdout] 588 |     ) -> impl Iterator<
[INFO] [stdout] 589 |         Item = Either<&'a ExprField<Id, ArcType<Id>>, &'a ExprField<Id, SpannedExpr<'ast, Id>>>,
[INFO] [stdout]     |                        -- ^^^^^^^^^^^^^^^^^^^^^^^^^^   -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |  |                            |
[INFO] [stdout]     |                        |  |                            the same lifetime is named here
[INFO] [stdout]     |                        |  the same lifetime is hidden here
[INFO] [stdout]     |                        the same lifetime is named here
[INFO] [stdout] 590 |     > + 'a {
[INFO] [stdout]     |         -- the same lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 589 |         Item = Either<&'a ExprField<'a, Id, ArcType<Id>>, &'a ExprField<'a, Id, SpannedExpr<'ast, Id>>>,
[INFO] [stdout]     |                                     +++                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:609:32
[INFO] [stdout]     |
[INFO] [stdout] 609 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_TypeBinding`
[INFO] [stdout] 610 | pub struct TypeBinding<'ast, Id> {
[INFO] [stdout]     |            ----------- `TypeBinding` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:623:54
[INFO] [stdout]     |
[INFO] [stdout] 623 | #[derive(Clone, Default, Eq, PartialEq, Debug, Hash, AstClone)]
[INFO] [stdout]     |                                                      ^-------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      `AstClone` is not local
[INFO] [stdout]     |                                                      move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Argument`
[INFO] [stdout] 624 | #[cfg_attr(feature = "serde_derive", derive(Deserialize, Serialize))]
[INFO] [stdout] 625 | pub struct Argument<N> {
[INFO] [stdout]     |            -------- `Argument` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:646:32
[INFO] [stdout]     |
[INFO] [stdout] 646 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_ValueBindings`
[INFO] [stdout] 647 | pub enum ValueBindings<'ast, Id> {
[INFO] [stdout]     |          ------------- `ValueBindings` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:698:32
[INFO] [stdout]     |
[INFO] [stdout] 698 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_ValueBinding`
[INFO] [stdout] 699 | pub struct ValueBinding<'ast, Id> {
[INFO] [stdout]     |            ------------ `ValueBinding` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/ast.rs:1258:51
[INFO] [stdout]      |
[INFO] [stdout] 1258 |               pub fn borrow(&'ast self) -> ArenaRef<'_, 'ast, Id> {
[INFO] [stdout]      |                              ----                   ^^  ---- the same lifetime is named here
[INFO] [stdout]      |                              |                      |
[INFO] [stdout]      |                              |                      the same lifetime is elided here
[INFO] [stdout]      |                              the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 1294 | / impl_ast_arena! {
[INFO] [stdout] 1295 | |     SpannedExpr<'ast, Id> => exprs,
[INFO] [stdout] 1296 | |     SpannedPattern<'ast, Id> => patterns,
[INFO] [stdout] 1297 | |     PatternField<'ast, Id> => pattern_field,
[INFO] [stdout] ...    |
[INFO] [stdout] 1310 | |     Metadata => metadata,
[INFO] [stdout] 1311 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: this warning originates in the macro `impl_ast_arena` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consistently use `'ast`
[INFO] [stdout]      |
[INFO] [stdout] 1258 -             pub fn borrow(&'ast self) -> ArenaRef<'_, 'ast, Id> {
[INFO] [stdout] 1258 +             pub fn borrow(&'ast self) -> ArenaRef<'ast, 'ast, Id> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/error.rs:62:17
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> slice::Iter<T> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> slice::Iter<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/metadata.rs:55:47
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[derive(Debug, Default, Eq, PartialEq, Hash, gluon_codegen::AstClone)]
[INFO] [stdout]    |                                               ^----------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               `AstClone` is not local
[INFO] [stdout]    |                                               move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_BaseMetadata`
[INFO] [stdout] 56 | pub struct BaseMetadata<'ast> {
[INFO] [stdout]    |            ------------ `BaseMetadata` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `gluon_codegen::AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `gluon_codegen::AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `gluon_codegen::AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/scoped_map.rs:70:23
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn exit_scope(&mut self) -> ExitScopeIter<K, V> {
[INFO] [stdout]    |                       ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn exit_scope(&mut self) -> ExitScopeIter<'_, K, V> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scoped_map.rs:136:18
[INFO] [stdout]     |
[INFO] [stdout] 136 |     pub fn entry(&mut self, key: K) -> Entry<K, V> {
[INFO] [stdout]     |                  ^^^^^^^^^             ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 136 |     pub fn entry(&mut self, key: K) -> Entry<'_, K, V> {
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scoped_map.rs:236:21
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn iter_mut(&mut self) -> IterMut<K, Vec<V>> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn iter_mut(&mut self) -> IterMut<'_, K, Vec<V>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scoped_map.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn iter(&self) -> Iter<K, V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn iter(&self) -> Iter<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/source.rs:245:25
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn comments_between(&self, span: Span<BytePos>) -> CommentIter;
[INFO] [stdout]     |                         ^^^^^                          ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn comments_between(&self, span: Span<BytePos>) -> CommentIter<'_>;
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/source.rs:298:25
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn comments_between(&self, span: Span<BytePos>) -> CommentIter {
[INFO] [stdout]     |                         ^^^^^                          ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn comments_between(&self, span: Span<BytePos>) -> CommentIter<'_> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/source.rs:340:25
[INFO] [stdout]     |
[INFO] [stdout] 340 |     fn comments_between(&self, _: Span<BytePos>) -> CommentIter {
[INFO] [stdout]     |                         ^^^^^                       ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 340 |     fn comments_between(&self, _: Span<BytePos>) -> CommentIter<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/symbol.rs:431:23
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn components(&self) -> Components {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn components(&self) -> Components<'_> {
[INFO] [stdout]     |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:316:24
[INFO] [stdout]     |
[INFO] [stdout] 316 | #[derive(Clone, Debug, AstClone)]
[INFO] [stdout]     |                        ^-------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `AstClone` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Skolem`
[INFO] [stdout] ...
[INFO] [stdout] 330 | pub struct Skolem<Id> {
[INFO] [stdout]     |            ------ `Skolem` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:342:45
[INFO] [stdout]     |
[INFO] [stdout] 342 | #[derive(Clone, Debug, Eq, PartialEq, Hash, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Generic`
[INFO] [stdout] ...
[INFO] [stdout] 356 | pub struct Generic<Id> {
[INFO] [stdout]     |            ------- `Generic` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:371:45
[INFO] [stdout]     |
[INFO] [stdout] 371 | #[derive(Clone, Debug, Eq, PartialEq, Hash, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Alias`
[INFO] [stdout] ...
[INFO] [stdout] 385 | pub struct Alias<Id, T> {
[INFO] [stdout]     |            ----- `Alias` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types/mod.rs:512:16
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn typ(&self, interner: &mut impl TypeContext<Id, T>) -> Cow<T> {
[INFO] [stdout]     |                ^^^^^ the lifetime is elided here                 ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn typ(&self, interner: &mut impl TypeContext<Id, T>) -> Cow<'_, T> {
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:550:17
[INFO] [stdout]     |
[INFO] [stdout] 550 | #[derive(Clone, AstClone)]
[INFO] [stdout]     |                 ^-------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `AstClone` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_AliasRef`
[INFO] [stdout] ...
[INFO] [stdout] 569 | pub struct AliasRef<Id, T>
[INFO] [stdout]     |            -------- `AliasRef` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types/mod.rs:659:16
[INFO] [stdout]     |
[INFO] [stdout] 659 |     pub fn typ(&self, interner: &mut impl TypeContext<Id, T>) -> Cow<T> {
[INFO] [stdout]     |                ^^^^^ the lifetime is elided here                 ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 659 |     pub fn typ(&self, interner: &mut impl TypeContext<Id, T>) -> Cow<'_, T> {
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:699:45
[INFO] [stdout]     |
[INFO] [stdout] 699 | #[derive(Clone, Debug, Eq, PartialEq, Hash, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_AliasData`
[INFO] [stdout] ...
[INFO] [stdout] 718 | pub struct AliasData<Id, T: TypePtr<Id = Id>> {
[INFO] [stdout]     |            --------- `AliasData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:824:45
[INFO] [stdout]     |
[INFO] [stdout] 824 | #[derive(Clone, Hash, Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Field`
[INFO] [stdout] ...
[INFO] [stdout] 843 | pub struct Field<FieldId, T = ArcType<FieldId>> {
[INFO] [stdout]     |            ----- `Field` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:914:45
[INFO] [stdout]     |
[INFO] [stdout] 914 | #[derive(Clone, Debug, Eq, PartialEq, Hash, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Type`
[INFO] [stdout] ...
[INFO] [stdout] 947 | pub enum Type<Id, T: TypePtr<Id = Id> = ArcType<Id>> {
[INFO] [stdout]     |          ---- `Type` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1327:27
[INFO] [stdout]      |
[INFO] [stdout] 1327 |     pub fn unapplied_args(&self) -> Cow<[T]>
[INFO] [stdout]      |                           ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1327 |     pub fn unapplied_args(&self) -> Cow<'_, [T]>
[INFO] [stdout]      |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1637:25
[INFO] [stdout]      |
[INFO] [stdout] 1637 | pub fn row_iter<T>(typ: &T) -> RowIterator<T> {
[INFO] [stdout]      |                         ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1637 | pub fn row_iter<T>(typ: &T) -> RowIterator<'_, T> {
[INFO] [stdout]      |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1641:33
[INFO] [stdout]      |
[INFO] [stdout] 1641 | pub fn row_iter_mut<Id, T>(typ: &mut T) -> RowIteratorMut<Id, T> {
[INFO] [stdout]      |                                 ^^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1641 | pub fn row_iter_mut<Id, T>(typ: &mut T) -> RowIteratorMut<'_, Id, T> {
[INFO] [stdout]      |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1648:32
[INFO] [stdout]      |
[INFO] [stdout] 1648 | pub fn type_field_iter<T>(typ: &T) -> TypeFieldIterator<T> {
[INFO] [stdout]      |                                ^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1648 | pub fn type_field_iter<T>(typ: &T) -> TypeFieldIterator<'_, T> {
[INFO] [stdout]      |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1738:19
[INFO] [stdout]      |
[INFO] [stdout] 1738 |     fn display<A>(&self, width: usize) -> TypeFormatter<Self::Id, Self, A>
[INFO] [stdout]      |                   ^^^^^                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1738 |     fn display<A>(&self, width: usize) -> TypeFormatter<'_, Self::Id, Self, A>
[INFO] [stdout]      |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1760:24
[INFO] [stdout]      |
[INFO] [stdout] 1760 |     fn type_field_iter(&self) -> TypeFieldIterator<Self> {
[INFO] [stdout]      |                        ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1760 |     fn type_field_iter(&self) -> TypeFieldIterator<'_, Self> {
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1764:17
[INFO] [stdout]      |
[INFO] [stdout] 1764 |     fn arg_iter(&self) -> ArgIterator<Self> {
[INFO] [stdout]      |                 ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1764 |     fn arg_iter(&self) -> ArgIterator<'_, Self> {
[INFO] [stdout]      |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1768:26
[INFO] [stdout]      |
[INFO] [stdout] 1768 |     fn implicit_arg_iter(&self) -> ImplicitArgIterator<Self> {
[INFO] [stdout]      |                          ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1768 |     fn implicit_arg_iter(&self) -> ImplicitArgIterator<'_, Self> {
[INFO] [stdout]      |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1774:17
[INFO] [stdout]      |
[INFO] [stdout] 1774 |     fn row_iter(&self) -> RowIterator<Self> {
[INFO] [stdout]      |                 ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1774 |     fn row_iter(&self) -> RowIterator<'_, Self> {
[INFO] [stdout]      |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1858:26
[INFO] [stdout]      |
[INFO] [stdout] 1858 |     fn forall_scope_iter(&self) -> ForallScopeIter<Self> {
[INFO] [stdout]      |                          ^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1858 |     fn forall_scope_iter(&self) -> ForallScopeIter<'_, Self> {
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2313:65
[INFO] [stdout]      |
[INFO] [stdout] 2313 | fn split_top<'a, Id, T>(self_: &'a T) -> Option<(Option<&'a T>, Cow<[T]>)>
[INFO] [stdout]      |                                 --                       --     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                 |                        |
[INFO] [stdout]      |                                 |                        the same lifetime is named here
[INFO] [stdout]      |                                 the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 2313 | fn split_top<'a, Id, T>(self_: &'a T) -> Option<(Option<&'a T>, Cow<'a, [T]>)>
[INFO] [stdout]      |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2337:62
[INFO] [stdout]      |
[INFO] [stdout] 2337 | pub fn split_app<'a, Id, T>(self_: &'a T) -> (Option<&'a T>, Cow<[T]>)
[INFO] [stdout]      |                                     --                --     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                     |                 |
[INFO] [stdout]      |                                     |                 the same lifetime is named here
[INFO] [stdout]      |                                     the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 2337 | pub fn split_app<'a, Id, T>(self_: &'a T) -> (Option<&'a T>, Cow<'a, [T]>)
[INFO] [stdout]      |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2362:30
[INFO] [stdout]      |
[INFO] [stdout] 2362 | pub fn ctor_args<Id, T>(typ: &T) -> ArgIterator<T>
[INFO] [stdout]      |                              ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2362 | pub fn ctor_args<Id, T>(typ: &T) -> ArgIterator<'_, T>
[INFO] [stdout]      |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2376:29
[INFO] [stdout]      |
[INFO] [stdout] 2376 | pub fn arg_iter<Id, T>(typ: &T) -> ArgIterator<T>
[INFO] [stdout]      |                             ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2376 | pub fn arg_iter<Id, T>(typ: &T) -> ArgIterator<'_, T>
[INFO] [stdout]      |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2404:38
[INFO] [stdout]      |
[INFO] [stdout] 2404 | pub fn implicit_arg_iter<Id, T>(typ: &T) -> ImplicitArgIterator<T>
[INFO] [stdout]      |                                      ^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2404 | pub fn implicit_arg_iter<Id, T>(typ: &T) -> ImplicitArgIterator<'_, T>
[INFO] [stdout]      |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2532:31
[INFO] [stdout]      |
[INFO] [stdout] 2532 | pub fn dt<T>(prec: Prec, typ: &T) -> DisplayType<T> {
[INFO] [stdout]      |                               ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2532 | pub fn dt<T>(prec: Prec, typ: &T) -> DisplayType<'_, T> {
[INFO] [stdout]      |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2536:16
[INFO] [stdout]      |
[INFO] [stdout] 2536 | fn top<T>(typ: &T) -> DisplayType<T> {
[INFO] [stdout]      |                ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                |
[INFO] [stdout]      |                the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2536 | fn top<T>(typ: &T) -> DisplayType<'_, T> {
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]     --> src/ast.rs:1328:32
[INFO] [stdout]      |
[INFO] [stdout] 1328 |             struct Guard<'tag>(&'tag $crate::ast::InvariantLifetime<'tag>);
[INFO] [stdout]      |                    -----       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1346 |         mk_ast_arena!(arena);
[INFO] [stdout]      |         -------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = help: consider removing this field
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]      = note: this warning originates in the macro `mk_ast_arena` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/ast.rs:81:25
[INFO] [stdout]    |
[INFO] [stdout] 81 | #[derive(Eq, PartialEq, AstClone)]
[INFO] [stdout]    |                         ^-------
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `AstClone` is not local
[INFO] [stdout]    |                         move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_InnerAstType`
[INFO] [stdout] 82 | pub struct InnerAstType<'ast, Id> {
[INFO] [stdout]    |            ------------ `InnerAstType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/ast.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 | #[derive(Eq, PartialEq, AstClone)]
[INFO] [stdout]    |                         ^-------
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         `AstClone` is not local
[INFO] [stdout]    |                         move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_AstType`
[INFO] [stdout] 88 | pub struct AstType<'ast, Id> {
[INFO] [stdout]    |            ------- `AstType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:283:32
[INFO] [stdout]     |
[INFO] [stdout] 283 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_PatternField`
[INFO] [stdout] 284 | pub enum PatternField<'ast, Id> {
[INFO] [stdout]     |          ------------ `PatternField` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:302:32
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Pattern`
[INFO] [stdout] 303 | pub enum Pattern<'ast, Id> {
[INFO] [stdout]     |          ------- `Pattern` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:384:32
[INFO] [stdout]     |
[INFO] [stdout] 384 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Alternative`
[INFO] [stdout] 385 | pub struct Alternative<'ast, Id> {
[INFO] [stdout]     |            ----------- `Alternative` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:390:32
[INFO] [stdout]     |
[INFO] [stdout] 390 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Array`
[INFO] [stdout] 391 | pub struct Array<'ast, Id> {
[INFO] [stdout]     |            ----- `Array` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:396:32
[INFO] [stdout]     |
[INFO] [stdout] 396 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Lambda`
[INFO] [stdout] 397 | pub struct Lambda<'ast, Id> {
[INFO] [stdout]     |            ------ `Lambda` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:411:32
[INFO] [stdout]     |
[INFO] [stdout] 411 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_ExprField`
[INFO] [stdout] 412 | pub struct ExprField<'ast, Id, E> {
[INFO] [stdout]     |            --------- `ExprField` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:418:32
[INFO] [stdout]     |
[INFO] [stdout] 418 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Do`
[INFO] [stdout] 419 | pub struct Do<'ast, Id> {
[INFO] [stdout]     |            -- `Do` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:428:32
[INFO] [stdout]     |
[INFO] [stdout] 428 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Expr`
[INFO] [stdout] 429 | pub enum Expr<'ast, Id> {
[INFO] [stdout]     |          ---- `Expr` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:589:27
[INFO] [stdout]     |
[INFO] [stdout] 587 |         &'a self,
[INFO] [stdout]     |          -- the lifetime is named here
[INFO] [stdout] 588 |     ) -> impl Iterator<
[INFO] [stdout] 589 |         Item = Either<&'a ExprField<Id, ArcType<Id>>, &'a ExprField<Id, SpannedExpr<'ast, Id>>>,
[INFO] [stdout]     |                        -- ^^^^^^^^^^^^^^^^^^^^^^^^^^   -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |  |                            |
[INFO] [stdout]     |                        |  |                            the same lifetime is named here
[INFO] [stdout]     |                        |  the same lifetime is hidden here
[INFO] [stdout]     |                        the same lifetime is named here
[INFO] [stdout] 590 |     > + 'a {
[INFO] [stdout]     |         -- the same lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 589 |         Item = Either<&'a ExprField<'a, Id, ArcType<Id>>, &'a ExprField<'a, Id, SpannedExpr<'ast, Id>>>,
[INFO] [stdout]     |                                     +++                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:609:32
[INFO] [stdout]     |
[INFO] [stdout] 609 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_TypeBinding`
[INFO] [stdout] 610 | pub struct TypeBinding<'ast, Id> {
[INFO] [stdout]     |            ----------- `TypeBinding` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:623:54
[INFO] [stdout]     |
[INFO] [stdout] 623 | #[derive(Clone, Default, Eq, PartialEq, Debug, Hash, AstClone)]
[INFO] [stdout]     |                                                      ^-------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      `AstClone` is not local
[INFO] [stdout]     |                                                      move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Argument`
[INFO] [stdout] 624 | #[cfg_attr(feature = "serde_derive", derive(Deserialize, Serialize))]
[INFO] [stdout] 625 | pub struct Argument<N> {
[INFO] [stdout]     |            -------- `Argument` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:646:32
[INFO] [stdout]     |
[INFO] [stdout] 646 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_ValueBindings`
[INFO] [stdout] 647 | pub enum ValueBindings<'ast, Id> {
[INFO] [stdout]     |          ------------- `ValueBindings` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/ast.rs:698:32
[INFO] [stdout]     |
[INFO] [stdout] 698 | #[derive(Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                ^-------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `AstClone` is not local
[INFO] [stdout]     |                                move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_ValueBinding`
[INFO] [stdout] 699 | pub struct ValueBinding<'ast, Id> {
[INFO] [stdout]     |            ------------ `ValueBinding` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/ast.rs:1258:51
[INFO] [stdout]      |
[INFO] [stdout] 1258 |               pub fn borrow(&'ast self) -> ArenaRef<'_, 'ast, Id> {
[INFO] [stdout]      |                              ----                   ^^  ---- the same lifetime is named here
[INFO] [stdout]      |                              |                      |
[INFO] [stdout]      |                              |                      the same lifetime is elided here
[INFO] [stdout]      |                              the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 1294 | / impl_ast_arena! {
[INFO] [stdout] 1295 | |     SpannedExpr<'ast, Id> => exprs,
[INFO] [stdout] 1296 | |     SpannedPattern<'ast, Id> => patterns,
[INFO] [stdout] 1297 | |     PatternField<'ast, Id> => pattern_field,
[INFO] [stdout] ...    |
[INFO] [stdout] 1310 | |     Metadata => metadata,
[INFO] [stdout] 1311 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: this warning originates in the macro `impl_ast_arena` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consistently use `'ast`
[INFO] [stdout]      |
[INFO] [stdout] 1258 -             pub fn borrow(&'ast self) -> ArenaRef<'_, 'ast, Id> {
[INFO] [stdout] 1258 +             pub fn borrow(&'ast self) -> ArenaRef<'ast, 'ast, Id> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/error.rs:62:17
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> slice::Iter<T> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> slice::Iter<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/metadata.rs:55:47
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[derive(Debug, Default, Eq, PartialEq, Hash, gluon_codegen::AstClone)]
[INFO] [stdout]    |                                               ^----------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               `AstClone` is not local
[INFO] [stdout]    |                                               move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_BaseMetadata`
[INFO] [stdout] 56 | pub struct BaseMetadata<'ast> {
[INFO] [stdout]    |            ------------ `BaseMetadata` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `gluon_codegen::AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `gluon_codegen::AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `gluon_codegen::AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/scoped_map.rs:70:23
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn exit_scope(&mut self) -> ExitScopeIter<K, V> {
[INFO] [stdout]    |                       ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn exit_scope(&mut self) -> ExitScopeIter<'_, K, V> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scoped_map.rs:136:18
[INFO] [stdout]     |
[INFO] [stdout] 136 |     pub fn entry(&mut self, key: K) -> Entry<K, V> {
[INFO] [stdout]     |                  ^^^^^^^^^             ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 136 |     pub fn entry(&mut self, key: K) -> Entry<'_, K, V> {
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scoped_map.rs:236:21
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn iter_mut(&mut self) -> IterMut<K, Vec<V>> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn iter_mut(&mut self) -> IterMut<'_, K, Vec<V>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scoped_map.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn iter(&self) -> Iter<K, V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn iter(&self) -> Iter<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/source.rs:245:25
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn comments_between(&self, span: Span<BytePos>) -> CommentIter;
[INFO] [stdout]     |                         ^^^^^                          ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn comments_between(&self, span: Span<BytePos>) -> CommentIter<'_>;
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/source.rs:298:25
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn comments_between(&self, span: Span<BytePos>) -> CommentIter {
[INFO] [stdout]     |                         ^^^^^                          ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn comments_between(&self, span: Span<BytePos>) -> CommentIter<'_> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/source.rs:340:25
[INFO] [stdout]     |
[INFO] [stdout] 340 |     fn comments_between(&self, _: Span<BytePos>) -> CommentIter {
[INFO] [stdout]     |                         ^^^^^                       ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 340 |     fn comments_between(&self, _: Span<BytePos>) -> CommentIter<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/symbol.rs:431:23
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn components(&self) -> Components {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn components(&self) -> Components<'_> {
[INFO] [stdout]     |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:316:24
[INFO] [stdout]     |
[INFO] [stdout] 316 | #[derive(Clone, Debug, AstClone)]
[INFO] [stdout]     |                        ^-------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `AstClone` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Skolem`
[INFO] [stdout] ...
[INFO] [stdout] 330 | pub struct Skolem<Id> {
[INFO] [stdout]     |            ------ `Skolem` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:342:45
[INFO] [stdout]     |
[INFO] [stdout] 342 | #[derive(Clone, Debug, Eq, PartialEq, Hash, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Generic`
[INFO] [stdout] ...
[INFO] [stdout] 356 | pub struct Generic<Id> {
[INFO] [stdout]     |            ------- `Generic` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:371:45
[INFO] [stdout]     |
[INFO] [stdout] 371 | #[derive(Clone, Debug, Eq, PartialEq, Hash, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Alias`
[INFO] [stdout] ...
[INFO] [stdout] 385 | pub struct Alias<Id, T> {
[INFO] [stdout]     |            ----- `Alias` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types/mod.rs:512:16
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn typ(&self, interner: &mut impl TypeContext<Id, T>) -> Cow<T> {
[INFO] [stdout]     |                ^^^^^ the lifetime is elided here                 ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn typ(&self, interner: &mut impl TypeContext<Id, T>) -> Cow<'_, T> {
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:550:17
[INFO] [stdout]     |
[INFO] [stdout] 550 | #[derive(Clone, AstClone)]
[INFO] [stdout]     |                 ^-------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `AstClone` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_AliasRef`
[INFO] [stdout] ...
[INFO] [stdout] 569 | pub struct AliasRef<Id, T>
[INFO] [stdout]     |            -------- `AliasRef` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types/mod.rs:659:16
[INFO] [stdout]     |
[INFO] [stdout] 659 |     pub fn typ(&self, interner: &mut impl TypeContext<Id, T>) -> Cow<T> {
[INFO] [stdout]     |                ^^^^^ the lifetime is elided here                 ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 659 |     pub fn typ(&self, interner: &mut impl TypeContext<Id, T>) -> Cow<'_, T> {
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:699:45
[INFO] [stdout]     |
[INFO] [stdout] 699 | #[derive(Clone, Debug, Eq, PartialEq, Hash, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_AliasData`
[INFO] [stdout] ...
[INFO] [stdout] 718 | pub struct AliasData<Id, T: TypePtr<Id = Id>> {
[INFO] [stdout]     |            --------- `AliasData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:824:45
[INFO] [stdout]     |
[INFO] [stdout] 824 | #[derive(Clone, Hash, Eq, PartialEq, Debug, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Field`
[INFO] [stdout] ...
[INFO] [stdout] 843 | pub struct Field<FieldId, T = ArcType<FieldId>> {
[INFO] [stdout]     |            ----- `Field` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/mod.rs:914:45
[INFO] [stdout]     |
[INFO] [stdout] 914 | #[derive(Clone, Debug, Eq, PartialEq, Hash, AstClone)]
[INFO] [stdout]     |                                             ^-------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `AstClone` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_AST_CLONE_FOR_Type`
[INFO] [stdout] ...
[INFO] [stdout] 947 | pub enum Type<Id, T: TypePtr<Id = Id> = ArcType<Id>> {
[INFO] [stdout]     |          ---- `Type` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `AstClone` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `AstClone` may come from an old version of the `gluon_codegen` crate, try updating your dependency with `cargo update -p gluon_codegen`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `AstClone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1327:27
[INFO] [stdout]      |
[INFO] [stdout] 1327 |     pub fn unapplied_args(&self) -> Cow<[T]>
[INFO] [stdout]      |                           ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1327 |     pub fn unapplied_args(&self) -> Cow<'_, [T]>
[INFO] [stdout]      |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1637:25
[INFO] [stdout]      |
[INFO] [stdout] 1637 | pub fn row_iter<T>(typ: &T) -> RowIterator<T> {
[INFO] [stdout]      |                         ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1637 | pub fn row_iter<T>(typ: &T) -> RowIterator<'_, T> {
[INFO] [stdout]      |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1641:33
[INFO] [stdout]      |
[INFO] [stdout] 1641 | pub fn row_iter_mut<Id, T>(typ: &mut T) -> RowIteratorMut<Id, T> {
[INFO] [stdout]      |                                 ^^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1641 | pub fn row_iter_mut<Id, T>(typ: &mut T) -> RowIteratorMut<'_, Id, T> {
[INFO] [stdout]      |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1648:32
[INFO] [stdout]      |
[INFO] [stdout] 1648 | pub fn type_field_iter<T>(typ: &T) -> TypeFieldIterator<T> {
[INFO] [stdout]      |                                ^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1648 | pub fn type_field_iter<T>(typ: &T) -> TypeFieldIterator<'_, T> {
[INFO] [stdout]      |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1738:19
[INFO] [stdout]      |
[INFO] [stdout] 1738 |     fn display<A>(&self, width: usize) -> TypeFormatter<Self::Id, Self, A>
[INFO] [stdout]      |                   ^^^^^                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1738 |     fn display<A>(&self, width: usize) -> TypeFormatter<'_, Self::Id, Self, A>
[INFO] [stdout]      |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1760:24
[INFO] [stdout]      |
[INFO] [stdout] 1760 |     fn type_field_iter(&self) -> TypeFieldIterator<Self> {
[INFO] [stdout]      |                        ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1760 |     fn type_field_iter(&self) -> TypeFieldIterator<'_, Self> {
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1764:17
[INFO] [stdout]      |
[INFO] [stdout] 1764 |     fn arg_iter(&self) -> ArgIterator<Self> {
[INFO] [stdout]      |                 ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1764 |     fn arg_iter(&self) -> ArgIterator<'_, Self> {
[INFO] [stdout]      |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1768:26
[INFO] [stdout]      |
[INFO] [stdout] 1768 |     fn implicit_arg_iter(&self) -> ImplicitArgIterator<Self> {
[INFO] [stdout]      |                          ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1768 |     fn implicit_arg_iter(&self) -> ImplicitArgIterator<'_, Self> {
[INFO] [stdout]      |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1774:17
[INFO] [stdout]      |
[INFO] [stdout] 1774 |     fn row_iter(&self) -> RowIterator<Self> {
[INFO] [stdout]      |                 ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1774 |     fn row_iter(&self) -> RowIterator<'_, Self> {
[INFO] [stdout]      |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:1858:26
[INFO] [stdout]      |
[INFO] [stdout] 1858 |     fn forall_scope_iter(&self) -> ForallScopeIter<Self> {
[INFO] [stdout]      |                          ^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1858 |     fn forall_scope_iter(&self) -> ForallScopeIter<'_, Self> {
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2313:65
[INFO] [stdout]      |
[INFO] [stdout] 2313 | fn split_top<'a, Id, T>(self_: &'a T) -> Option<(Option<&'a T>, Cow<[T]>)>
[INFO] [stdout]      |                                 --                       --     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                 |                        |
[INFO] [stdout]      |                                 |                        the same lifetime is named here
[INFO] [stdout]      |                                 the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 2313 | fn split_top<'a, Id, T>(self_: &'a T) -> Option<(Option<&'a T>, Cow<'a, [T]>)>
[INFO] [stdout]      |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2337:62
[INFO] [stdout]      |
[INFO] [stdout] 2337 | pub fn split_app<'a, Id, T>(self_: &'a T) -> (Option<&'a T>, Cow<[T]>)
[INFO] [stdout]      |                                     --                --     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                     |                 |
[INFO] [stdout]      |                                     |                 the same lifetime is named here
[INFO] [stdout]      |                                     the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 2337 | pub fn split_app<'a, Id, T>(self_: &'a T) -> (Option<&'a T>, Cow<'a, [T]>)
[INFO] [stdout]      |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2362:30
[INFO] [stdout]      |
[INFO] [stdout] 2362 | pub fn ctor_args<Id, T>(typ: &T) -> ArgIterator<T>
[INFO] [stdout]      |                              ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2362 | pub fn ctor_args<Id, T>(typ: &T) -> ArgIterator<'_, T>
[INFO] [stdout]      |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2376:29
[INFO] [stdout]      |
[INFO] [stdout] 2376 | pub fn arg_iter<Id, T>(typ: &T) -> ArgIterator<T>
[INFO] [stdout]      |                             ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2376 | pub fn arg_iter<Id, T>(typ: &T) -> ArgIterator<'_, T>
[INFO] [stdout]      |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2404:38
[INFO] [stdout]      |
[INFO] [stdout] 2404 | pub fn implicit_arg_iter<Id, T>(typ: &T) -> ImplicitArgIterator<T>
[INFO] [stdout]      |                                      ^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2404 | pub fn implicit_arg_iter<Id, T>(typ: &T) -> ImplicitArgIterator<'_, T>
[INFO] [stdout]      |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2532:31
[INFO] [stdout]      |
[INFO] [stdout] 2532 | pub fn dt<T>(prec: Prec, typ: &T) -> DisplayType<T> {
[INFO] [stdout]      |                               ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2532 | pub fn dt<T>(prec: Prec, typ: &T) -> DisplayType<'_, T> {
[INFO] [stdout]      |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/types/mod.rs:2536:16
[INFO] [stdout]      |
[INFO] [stdout] 2536 | fn top<T>(typ: &T) -> DisplayType<T> {
[INFO] [stdout]      |                ^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                |
[INFO] [stdout]      |                the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2536 | fn top<T>(typ: &T) -> DisplayType<'_, T> {
[INFO] [stdout]      |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.41s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   log v0.4.33 removed features: std
[INFO] [stderr] 
[INFO] [stderr]     Checking gluon_base v0.18.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/types/mod.rs (9 fixes)
[INFO] [stderr]        Fixed src/fixed.rs (1 fix)
[INFO] [stderr]        Fixed src/lib.rs (3 fixes)
[INFO] [stderr]        Fixed src/merge.rs (3 fixes)
[INFO] [stderr]        Fixed src/types/flags.rs (5 fixes)
[INFO] [stderr]        Fixed src/ast.rs (2 fixes)
[INFO] [stderr]        Fixed src/macros.rs (2 fixes)
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/ast.rs:875:13
[INFO] [stdout]      |
[INFO] [stdout]  875 |             ref $($mut)* id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  876 |             ref $($mut)* typ,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  877 |             ref $($mut)* bound,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  878 |             ref $($mut)* body,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  879 |             ref $($mut)* flat_map_id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1026 |     visitor!(MutVisitor, unresolved_type_mut, try_get_alias_mut, mut);
[INFO] [stdout]      |     ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]      = note: this warning originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]  874 |         Expr::Do(&mut Do {
[INFO] [stdout]      |                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/ast.rs:942:56
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     PatternField::Value { name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1026 |     visitor!(MutVisitor, unresolved_type_mut, try_get_alias_mut, mut);
[INFO] [stdout]      |     ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: this warning originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern and borrow explicitly using a variable binding mode
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     &mut PatternField::Value { ref mut name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                     ++++                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/ast.rs:875:13
[INFO] [stdout]      |
[INFO] [stdout]  875 |             ref $($mut)* id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  876 |             ref $($mut)* typ,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  877 |             ref $($mut)* bound,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  878 |             ref $($mut)* body,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  879 |             ref $($mut)* flat_map_id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     visitor!(Visitor, unresolved_type, try_get_alias,);
[INFO] [stdout]      |     -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: this warning originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]  874 |         Expr::Do(&mut Do {
[INFO] [stdout]      |                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/ast.rs:942:56
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     PatternField::Value { name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     visitor!(Visitor, unresolved_type, try_get_alias,);
[INFO] [stdout]      |     -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: this warning originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern and borrow explicitly using a variable binding mode
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     &PatternField::Value { ref name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                     +                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/merge.rs:179:11
[INFO] [stdout]     |
[INFO] [stdout] 177 |       let mut types = types.into_iter();
[INFO] [stdout]     |           ---------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `types` calls a custom destructor
[INFO] [stdout]     |           `types` will be dropped later as of Edition 2024
[INFO] [stdout] 178 |       let clone_types_iter = types.clone();
[INFO] [stdout]     |           ----------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `clone_types_iter` calls a custom destructor
[INFO] [stdout]     |           `clone_types_iter` will be dropped later as of Edition 2024
[INFO] [stdout] 179 |       match types
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 180 | |         .by_ref()
[INFO] [stdout] 181 | |         .enumerate()
[INFO] [stdout] 182 | |         .find_map(|(i, typ)| action(state, typ).map(|typ| (i, typ)))
[INFO] [stdout]     | |                                                                    ^
[INFO] [stdout]     | |                                                                    |
[INFO] [stdout]     | |____________________________________________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 196 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/resolve.rs:249:31
[INFO] [stdout]     |
[INFO] [stdout] 241 |     mut typ: T,
[INFO] [stdout]     |     -------
[INFO] [stdout]     |     |
[INFO] [stdout]     |     `typ` calls a custom destructor
[INFO] [stdout]     |     `typ` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 249 |     while let Ok(Some(new)) = remove_alias(env, interner, &typ) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 250 |         typ = new;
[INFO] [stdout] 251 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/compiletest.rs from 2021 edition to 2024
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/ast.rs:875:13
[INFO] [stdout]      |
[INFO] [stdout]  875 |             ref $($mut)* id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  876 |             ref $($mut)* typ,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  877 |             ref $($mut)* bound,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  878 |             ref $($mut)* body,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  879 |             ref $($mut)* flat_map_id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1026 |     visitor!(MutVisitor, unresolved_type_mut, try_get_alias_mut, mut);
[INFO] [stdout]      |     ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]      = note: this warning originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]  874 |         Expr::Do(&mut Do {
[INFO] [stdout]      |                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/ast.rs:942:56
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     PatternField::Value { name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1026 |     visitor!(MutVisitor, unresolved_type_mut, try_get_alias_mut, mut);
[INFO] [stdout]      |     ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: this warning originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern and borrow explicitly using a variable binding mode
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     &mut PatternField::Value { ref mut name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                     ++++                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/ast.rs:875:13
[INFO] [stdout]      |
[INFO] [stdout]  875 |             ref $($mut)* id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  876 |             ref $($mut)* typ,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  877 |             ref $($mut)* bound,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  878 |             ref $($mut)* body,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  879 |             ref $($mut)* flat_map_id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     visitor!(Visitor, unresolved_type, try_get_alias,);
[INFO] [stdout]      |     -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: this warning originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]  874 |         Expr::Do(&mut Do {
[INFO] [stdout]      |                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/ast.rs:942:56
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     PatternField::Value { name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     visitor!(Visitor, unresolved_type, try_get_alias,);
[INFO] [stdout]      |     -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: this warning originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern and borrow explicitly using a variable binding mode
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     &PatternField::Value { ref name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                     +                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/merge.rs:179:11
[INFO] [stdout]     |
[INFO] [stdout] 177 |       let mut types = types.into_iter();
[INFO] [stdout]     |           ---------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `types` calls a custom destructor
[INFO] [stdout]     |           `types` will be dropped later as of Edition 2024
[INFO] [stdout] 178 |       let clone_types_iter = types.clone();
[INFO] [stdout]     |           ----------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `clone_types_iter` calls a custom destructor
[INFO] [stdout]     |           `clone_types_iter` will be dropped later as of Edition 2024
[INFO] [stdout] 179 |       match types
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 180 | |         .by_ref()
[INFO] [stdout] 181 | |         .enumerate()
[INFO] [stdout] 182 | |         .find_map(|(i, typ)| action(state, typ).map(|typ| (i, typ)))
[INFO] [stdout]     | |                                                                    ^
[INFO] [stdout]     | |                                                                    |
[INFO] [stdout]     | |____________________________________________________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 196 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/resolve.rs:249:31
[INFO] [stdout]     |
[INFO] [stdout] 241 |     mut typ: T,
[INFO] [stdout]     |     -------
[INFO] [stdout]     |     |
[INFO] [stdout]     |     `typ` calls a custom destructor
[INFO] [stdout]     |     `typ` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 249 |     while let Ok(Some(new)) = remove_alias(env, interner, &typ) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 250 |         typ = new;
[INFO] [stdout] 251 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/types.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed tests/types.rs (8 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/types.rs:409:5
[INFO] [stdout]     |
[INFO] [stdout] 409 |     get_local_interner().borrow_mut().simple_symbol(s)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^-------------
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this temporary value will be dropped at the end of the block
[INFO] [stdout]     |     a temporary with access to the borrow is created here ...
[INFO] [stdout] 410 | }
[INFO] [stdout]     | - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `RefMut<'_, Symbols>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the temporary is part of an expression at the end of a block;
[INFO] [stdout]             consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
[INFO] [stdout]     |
[INFO] [stdout] 409 |     let x = get_local_interner().borrow_mut().simple_symbol(s); x
[INFO] [stdout]     |     +++++++                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.76s
[INFO] [stderr] crater-edition-check: gluon_base v0.18.2 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking gluon_base v0.18.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `memory_usage`
[INFO] [stdout]   --> src/pos.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[cfg_attr(feature = "memory_usage", derive(HeapSizeOf))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `anymap`, `compiletest_rs`, `nightly`, `serde`, `serde_derive`, `serde_derive_state`, `serde_state`, and `serialization`
[INFO] [stdout]    = help: consider adding `memory_usage` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `memory_usage`
[INFO] [stdout]   --> src/pos.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[cfg_attr(feature = "memory_usage", derive(HeapSizeOf))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `anymap`, `compiletest_rs`, `nightly`, `serde`, `serde_derive`, `serde_derive_state`, `serde_state`, and `serialization`
[INFO] [stdout]    = help: consider adding `memory_usage` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/ast.rs:875:13
[INFO] [stdout]      |
[INFO] [stdout]  875 |             ref $($mut)* id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  876 |             ref $($mut)* typ,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  877 |             ref $($mut)* bound,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  878 |             ref $($mut)* body,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  879 |             ref $($mut)* flat_map_id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1026 |     visitor!(MutVisitor, unresolved_type_mut, try_get_alias_mut, mut);
[INFO] [stdout]      |     ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout]      = note: this error originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]  874 |         Expr::Do(&mut Do {
[INFO] [stdout]      |                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/ast.rs:875:13
[INFO] [stdout]      |
[INFO] [stdout]  875 |             ref $($mut)* id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  876 |             ref $($mut)* typ,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  877 |             ref $($mut)* bound,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  878 |             ref $($mut)* body,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  879 |             ref $($mut)* flat_map_id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1026 |     visitor!(MutVisitor, unresolved_type_mut, try_get_alias_mut, mut);
[INFO] [stdout]      |     ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout]      = note: this error originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]  874 |         Expr::Do(&mut Do {
[INFO] [stdout]      |                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/ast.rs:942:56
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     PatternField::Value { name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1026 |     visitor!(MutVisitor, unresolved_type_mut, try_get_alias_mut, mut);
[INFO] [stdout]      |     ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout]      = note: this error originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern and borrow explicitly using a variable binding mode
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     &mut PatternField::Value { ref mut name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                     ++++                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/ast.rs:942:56
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     PatternField::Value { name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1026 |     visitor!(MutVisitor, unresolved_type_mut, try_get_alias_mut, mut);
[INFO] [stdout]      |     ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout]      = note: this error originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern and borrow explicitly using a variable binding mode
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     &mut PatternField::Value { ref mut name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                     ++++                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/ast.rs:875:13
[INFO] [stdout]      |
[INFO] [stdout]  875 |             ref $($mut)* id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  876 |             ref $($mut)* typ,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  877 |             ref $($mut)* bound,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  878 |             ref $($mut)* body,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  879 |             ref $($mut)* flat_map_id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     visitor!(Visitor, unresolved_type, try_get_alias,);
[INFO] [stdout]      |     -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout]      = note: this error originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]  874 |         Expr::Do(&mut Do {
[INFO] [stdout]      |                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/ast.rs:875:13
[INFO] [stdout]      |
[INFO] [stdout]  875 |             ref $($mut)* id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  876 |             ref $($mut)* typ,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  877 |             ref $($mut)* bound,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  878 |             ref $($mut)* body,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout]  879 |             ref $($mut)* flat_map_id,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     visitor!(Visitor, unresolved_type, try_get_alias,);
[INFO] [stdout]      |     -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout]      = note: this error originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]  874 |         Expr::Do(&mut Do {
[INFO] [stdout]      |                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/ast.rs:942:56
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     PatternField::Value { name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     visitor!(Visitor, unresolved_type, try_get_alias,);
[INFO] [stdout]      |     -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout]      = note: this error originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern and borrow explicitly using a variable binding mode
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     &PatternField::Value { ref name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                     +                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/ast.rs:942:56
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     PatternField::Value { name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                                                        ^^^^^^^^^^^^^^^^^^^^ occurs within macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     visitor!(Visitor, unresolved_type, try_get_alias,);
[INFO] [stdout]      |     -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout]      = note: this error originates in the macro `visitor` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: match on the reference with a reference pattern and borrow explicitly using a variable binding mode
[INFO] [stdout]      |
[INFO] [stdout]  942 |                     &PatternField::Value { ref name, value: ref $($mut)* pattern, } => {
[INFO] [stdout]      |                     +                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gluon_base` (lib) due to 4 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `gluon_base` (lib test) due to 4 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "7e8242f685711023a4758eafac9aef066303fabba0e1c4dc72967cf711418690", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e8242f685711023a4758eafac9aef066303fabba0e1c4dc72967cf711418690", kill_on_drop: false }`
[INFO] [stdout] 7e8242f685711023a4758eafac9aef066303fabba0e1c4dc72967cf711418690
